import base64
import time
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver import ActionChains

# 可以不写默认当前应用， 指定要自动化的应用包名 com.hollysos.manager.seedindustry
#appPackage='com.miui.home',
#可以不写默认当前页面，
#appActivity='.launcher.Launcher',
def getDriver():
    capabilities = dict(
        platformName='Android',  # 必填，指定平台为Android
        automationName='uiautomator2',  # 必填， 指定自动化引擎为UiAutomator2
        # deviceName='7llfge9ppv69uko7',  # 设备名称（Android中可以随意填写）
        # 多个设备，指定某个设备时必须写，
        # 通过 adb devices查看设备
        #不写默认当前应用
        # udid="7llfge9ppv69uko7",
        # 可以不写默认当前应用， 指定要自动化的应用包名 com.hollysos.manager.seedindustry
        #appPackage='com.miui.home',
        #可以不写默认当前页面，
        #appActivity='.launcher.Launcher',
        # 指定要启动的应用活动com.app.app2.MainActivity，mainLanuch.activity.LauncherActivity
        # language='en',  # 设置语言为英语,不写默认
        # locale='US'  # 设置区域为美国
        # 是否初始化手机环境，true=不初始化，记录手机数据，
        # #比如权限通过以后下次在启动就不会再次弹出再次授权,
        # 如果设置flash每次启动就会按照软件最开始状态运行
        # 比如不用每次都要从登录开始
        noReset=True,
        # adbExecTimeout=60000  # 将超时时间增加到60秒
    )

    # 定义Appium服务器URL测试地址
    appium_server_url = 'http://localhost:4723'
    # 启动测试
    driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))
    return driver

#识别图标点击图标
def find1():
    driver=getDriver()
    # fixImageFindScreenshotDims固定屏幕截图尺寸
    # fixImageTemplateSize固定大小的模板图像进行元素定位，以确保跨设备和分辨率的一致性
    # autoUpdateImageElementPosition:自动更新图像元素位置
    driver.update_settings({"fixImageFindScreenshotDims": True,
                            "fixImageTemplateSize": True,
                            "autoUpdateImageElementPosition": True})
    #识别抖音图标，然后点击抖音图标
    #open('默认是当前目录下', 'rb')
    base64_str = base64.b64encode(open('douyin.jpg', 'rb').read())
    base64_str = base64_str.decode('utf-8')
    #识别到抖音图标后点击打开抖音
    driver.find_element(AppiumBy.IMAGE, base64_str).click()
    #等待10秒
    time.sleep(3)
    #退出抖音应用
    driver.quit()

if __name__ == '__main__':
    find1()


